package com.comment.pojo.domain.chat;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.comment.config.dao.typeHandler.SetLongHandler;
import lombok.*;

import java.util.Map;
import java.util.Set;

/**
 * websocket消息
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(autoResultMap = true)
public class WsMessage extends Model<WsMessage>{
    /**
     * 消息id
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 消息发送类型
     * 1. 私聊 2. 世界 3. pin 4. pong
     */
    private Integer code;
    /**
     * 发送人用户id
     */
    private Long sendUserId;
    /**
     * 发送人用户名
     */
    private String username;
    /**
     * 接收人用户id
     */

    @TableField(typeHandler = SetLongHandler.class)
    private Set<Long> receiverUserIdList;
    /**
     * 发送时间
     */
    private Long sendTime;
    /**
     * 消息内容(文字)
     */
    private String msg;
    /**
     * 消息扩展内容
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Map<String, Object> ext;
}
